Harness Engineering
定義と概念
CPUがどれだけ高性能でもOSが貧弱ならパフォーマンスは出ない ハーネスが必要な理由
モデル間の静的ベンチマークスコア差は縮小しているが、長時間・複雑タスクでの差は顕在化 50〜100回のツール呼び出し後の挙動をテストするものはほぼ存在しない ハーネスの主要コンポーネント
Offload(オフロード):完全なツール結果を外部ファイルに保存、100個のツールの代わりにbashのような汎用ツール1つへ集約 progress.txtとgit logで前セッションの状態を引き継ぐ
進捗管理にはfeatures_list.json(Markdownよりモデルが誤編集しにくい) アーキテクチャ制約:LLMベースの監視に加えてカスタムリンターや構造テストも併用 ガーベジコレクション:ドキュメントの不整合や制約違反を定期的に発見するエージェント
ツールは減らすほうが性能が上がる
Vercelの事例:ツールの80%を削除したところエージェントが速く正確に 包括的なツールライブラリを揃えた当初はツール間での混乱と冗長呼び出しが頻発 ビターレッスンとアンチパターン
2024年に複雑なパイプラインが必要だった機能が2026年には単一コンテキストウィンドウで処理可能なケースが増加 ハーネスは軽量に、壊して作り直せる前提で設計すべき
今後の展望
設計指針
Build to Delete:モジュラーに構築し、新モデルへの対応で古いロジックを捨てられる設計に
参考
2026-04
ハーネスとは
https://gyazo.com/50ef572b228b2608a1ee0848971a7369
ハーネスエンジニアリングとは
https://gyazo.com/984f7f42ed8a12f2f71bb6893d1993f0
https://gyazo.com/26ea8b04f116fc4169c464c9a7f2548a
同じ単語をプレイヤーによって異なるスコープで使っているため混乱が生じる Martin Fowler の図に基づく分類
同じ「ハーネス」という単語を作り手と使い手のそれぞれが自分の関心領域に対して使っているのが混乱の正体 https://scrapbox.io/files/69f871548dc79f02a28b2ddb.webp
内部ハーネス: LangChain の立場
ベンダーポジションとして違和感はない
内部ハーネス: Anthropic の立場
外部ハーネス: Mitchell Hashimoto の立場
普通に使う利用者視点で、著者も共感できる立場
外部ハーネス: OpenAI の立場
「生成コードは人間のスタイル好みに合致しなくてよい、出力が正しく保守可能で将来の実行エージェントが読めれば基準を満たす」 ただし現時点の顧客への迎合という側面もある
結論まとめ
同じ言葉が言う側のポジションで意味がズレるため、用語としては使いたくない